1. Technical Field
This disclosure relates generally to planning and deploying of resource-consuming virtual entities, e.g., virtual machines, in computing environments, e.g., a data center or a “cloud” of distributed computing resources.
2. Background of the Related Art
An emerging information technology (IT) delivery model is cloud computing, by which shared resources, software and information are provided over the Internet to computers and other devices on-demand. Cloud computing can significantly reduce IT costs and complexities while improving workload optimization and service delivery. With this approach, an application instance can be hosted and made available from Internet-based resources that are accessible through a conventional Web browser over HTTP. An example application might be one that provides a common set of messaging functions, such as email, calendaring, contact management, and instant messaging. A user would then access the service directly over the Internet. Using this service, an enterprise would place its email, calendar and/or collaboration infrastructure in the cloud, and an end user would use an appropriate client to access his or her email, or perform a calendar operation.
Cloud compute resources are typically housed in large server farms that run networked applications, typically using a virtualized architecture wherein applications run inside virtual servers, or so-called “virtual machines” (VMs), that are mapped onto physical servers in a data center facility. The virtual machines typically run on top of a hypervisor, which is a control program that allocates physical resources to the virtual machines.
In a Software-as-a-Service (SaaS) cloud delivery model, a hosting center deploys a VM image template on a server on demand. Image templates typically are maintained in a central repository. A Virtual Appliance (VA) is a virtual machine image file comprising a pre-configured operating system environment, along with application(s) installed, configured and tested in the environment. The use of VA as a basic unit of deployment in the cloud introduces a new challenge for cloud service providers. VA image files are large, often tens of GigaBytes (GB) in size. When a request for a VA template is received, the entire file must be transferred to the hosting physical server for instantiation. Hosting centers, however, typically are geographically dispersed while the image repository may be centralized. The majority of time necessary to provision a request for a VM in the cloud thus is spent in delivering an image from an image repository, typically due to bandwidth-limited connectivity between sites (and the large size of the file). Therefore, accessing a repository over the Internet to fetch a GB-sized file can degrade server provisioning speed significantly.